package com.shujia.scala

object Demo9Object {
  def main(args: Array[String]): Unit = {
    TestObject.test()

    TestObject.apply()
    //调用apply方法
    TestObject()


    val user1 = new User1()
    //使用伴生对象的apply方法创建对象
    val user2: User1 = User1()
  }

}

/**
 * 伴生对象
 */
object User1 {
  def apply(): User1 = new User1()
}

class User1() {

}

/**
 * object: 相当于java中增加了static关键字类
 * object中的方法可以直接调用
 */
object TestObject {
  def test(): Unit = {
    println("test")
  }

  /**
   * apply； 特殊方法，不需要通过方法名调用直接通过object名调用
   */

  def apply(): Unit = {
    println("apply")
  }
}


